
<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module filterCatalog</title>
</head><body bgcolor="#f0f0f8">

<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong>filterCatalog</strong></big></big> (version 1.11)</font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/meurer/ACS/Pipeline/Apsis/apsis-4.2.4/python/apsis/filterCatalog.py">/home/meurer/ACS/Pipeline/Apsis/apsis-4.2.4/python/apsis/filterCatalog.py</a></font></td></tr></table>
    <p><tt>License<br>
=======<br>
&nbsp;<br>
Copyright&nbsp;(c)&nbsp;2009,&nbsp;The&nbsp;Johns&nbsp;Hopkins&nbsp;University<br>
&nbsp;<br>
All&nbsp;rights&nbsp;reserved.<br>
&nbsp;<br>
Redistribution&nbsp;and&nbsp;use&nbsp;in&nbsp;source&nbsp;and&nbsp;binary&nbsp;forms,&nbsp;with&nbsp;or&nbsp;without<br>
modification,&nbsp;are&nbsp;permitted&nbsp;provided&nbsp;that&nbsp;the&nbsp;following&nbsp;conditions&nbsp;are&nbsp;met:<br>
&nbsp;<br>
Redistributions&nbsp;of&nbsp;source&nbsp;code&nbsp;must&nbsp;retain&nbsp;the&nbsp;above&nbsp;copyright&nbsp;notice,&nbsp;this<br>
list&nbsp;of&nbsp;conditions&nbsp;and&nbsp;the&nbsp;following&nbsp;disclaimer.&nbsp;&nbsp;Redistributions&nbsp;in&nbsp;binary<br>
form&nbsp;must&nbsp;reproduce&nbsp;the&nbsp;above&nbsp;copyright&nbsp;notice,&nbsp;this&nbsp;list&nbsp;of&nbsp;conditions&nbsp;and<br>
the&nbsp;following&nbsp;disclaimer&nbsp;in&nbsp;the&nbsp;documentation&nbsp;and/or&nbsp;other&nbsp;materials&nbsp;provided<br>
with&nbsp;the&nbsp;distribution.&nbsp;&nbsp;Neither&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;Johns&nbsp;Hopkins&nbsp;University&nbsp;nor<br>
the&nbsp;names&nbsp;of&nbsp;its&nbsp;contributors&nbsp;may&nbsp;be&nbsp;used&nbsp;to&nbsp;endorse&nbsp;or&nbsp;promote&nbsp;products<br>
derived&nbsp;from&nbsp;this&nbsp;software&nbsp;without&nbsp;specific&nbsp;prior&nbsp;written&nbsp;permission.<br>
&nbsp;<br>
THIS&nbsp;SOFTWARE&nbsp;IS&nbsp;PROVIDED&nbsp;BY&nbsp;THE&nbsp;COPYRIGHT&nbsp;HOLDERS&nbsp;AND&nbsp;CONTRIBUTORS&nbsp;'AS<br>
IS'&nbsp;AND&nbsp;ANY&nbsp;EXPRESS&nbsp;OR&nbsp;IMPLIED&nbsp;WARRANTIES,&nbsp;INCLUDING,&nbsp;BUT&nbsp;NOT&nbsp;LIMITED<br>
TO,&nbsp;THE&nbsp;IMPLIED&nbsp;WARRANTIES&nbsp;OF&nbsp;MERCHANTABILITY&nbsp;AND&nbsp;FITNESS&nbsp;FOR&nbsp;A<br>
PARTICULAR&nbsp;PURPOSE&nbsp;ARE&nbsp;DISCLAIMED.&nbsp;IN&nbsp;NO&nbsp;EVENT&nbsp;SHALL&nbsp;THE&nbsp;COPYRIGHT<br>
HOLDER&nbsp;OR&nbsp;CONTRIBUTORS&nbsp;BE&nbsp;LIABLE&nbsp;FOR&nbsp;ANY&nbsp;DIRECT,&nbsp;INDIRECT,&nbsp;INCIDENTAL,<br>
SPECIAL,&nbsp;EXEMPLARY,&nbsp;OR&nbsp;CONSEQUENTIAL&nbsp;DAMAGES&nbsp;(INCLUDING,&nbsp;BUT&nbsp;NOT&nbsp;LIMITED<br>
TO,&nbsp;PROCUREMENT&nbsp;OF&nbsp;SUBSTITUTE&nbsp;GOODS&nbsp;OR&nbsp;SERVICES;&nbsp;LOSS&nbsp;OF&nbsp;USE,&nbsp;DATA,&nbsp;OR<br>
PROFITS;&nbsp;OR&nbsp;BUSINESS&nbsp;INTERRUPTION)&nbsp;HOWEVER&nbsp;CAUSED&nbsp;AND&nbsp;ON&nbsp;ANY&nbsp;THEORY&nbsp;OF<br>
LIABILITY,&nbsp;WHETHER&nbsp;IN&nbsp;CONTRACT,&nbsp;STRICT&nbsp;LIABILITY,&nbsp;OR&nbsp;TORT&nbsp;(INCLUDING<br>
NEGLIGENCE&nbsp;OR&nbsp;OTHERWISE)&nbsp;ARISING&nbsp;IN&nbsp;ANY&nbsp;WAY&nbsp;OUT&nbsp;OF&nbsp;THE&nbsp;USE&nbsp;OF&nbsp;THIS<br>
SOFTWARE,&nbsp;EVEN&nbsp;IF&nbsp;ADVISED&nbsp;OF&nbsp;THE&nbsp;POSSIBILITY&nbsp;OF&nbsp;SUCH&nbsp;DAMAGE.<br>
&nbsp;<br>
(This&nbsp;license&nbsp;is&nbsp;based&nbsp;on&nbsp;the&nbsp;BSD&nbsp;license<br>
&nbsp;<a href="http://www.opensource.org/licenses/bsd-license.html">http://www.opensource.org/licenses/bsd-license.html</a>)</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#fffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
    
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="numpy.oldnumeric.html">numpy.oldnumeric</a><br>
<a href="os.html">os</a><br>
</td><td width="25%" valign=top><a href="popen2.html">popen2</a><br>
<a href="string.html">string</a><br>
</td><td width="25%" valign=top><a href="tableio.html">tableio</a><br>
</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
    
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="catalog.html#Catalog">catalog.Catalog</a>
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="filterCatalog.html#filterCatalog">filterCatalog</a>
</font></dt></dl>
</dd>
</dl>
 <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="filterCatalog">class <strong>filterCatalog</strong></a>(<a href="catalog.html#Catalog">catalog.Catalog</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>Example&nbsp;usage:<br>
&nbsp;<br>
Filter&nbsp;<a href="catalog.html#Catalog">Catalog</a>&nbsp;creation:<br>
========================<br>
&nbsp;<br>
se&nbsp;=&nbsp;<a href="#filterCatalog">filterCatalog</a>.<a href="#filterCatalog">filterCatalog</a>(obs)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Create&nbsp;an&nbsp;instance<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;obs&nbsp;is&nbsp;the&nbsp;DataSet&nbsp;object&nbsp;(instance&nbsp;of&nbsp;DataSet)<br>
se.<a href="#filterCatalog-setinpar">setinpar</a>('FILTER_NAME',&nbsp;'gauss_2.0_3x3.conv')&nbsp;&nbsp;#&nbsp;change&nbsp;a&nbsp;parameter&nbsp;from&nbsp;.inpar<br>
se.<a href="#filterCatalog-setpars">setpars</a>()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;generates&nbsp;the&nbsp;.inpar&nbsp;and&nbsp;.param&nbsp;files&nbsp;in&nbsp;obsdir/par<br>
se.<a href="#filterCatalog-run2">run2</a>()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Run&nbsp;source&nbsp;extractor--dual&nbsp;image&nbsp;mode.&nbsp;<br>
se.writeXmlCatalog()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;writes&nbsp;.xml&nbsp;files&nbsp;from&nbsp;.cat&nbsp;files&nbsp;in&nbsp;obsdir/cat<br>
se.logfile.write(string)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;write&nbsp;an&nbsp;entry&nbsp;to&nbsp;the&nbsp;logfile<br>
&nbsp;<br>
&nbsp;<br>
NOTES:<br>
-&nbsp;the&nbsp;_magFix&nbsp;private&nbsp;function&nbsp;is&nbsp;in&nbsp;this&nbsp;module&nbsp;and&nbsp;called&nbsp;within&nbsp;the&nbsp;run<br>
&nbsp;&nbsp;method.&nbsp;&nbsp;It&nbsp;is&nbsp;only&nbsp;available&nbsp;for&nbsp;the&nbsp;filterCatalogs&nbsp;which&nbsp;is&nbsp;why&nbsp;it&nbsp;is&nbsp;here.<br>
-&nbsp;use&nbsp;of&nbsp;the&nbsp;inherited&nbsp;<a href="#filterCatalog-run">run</a>()&nbsp;method&nbsp;for&nbsp;the&nbsp;<a href="#filterCatalog">filterCatalog</a>&nbsp;instance&nbsp;is&nbsp;deprecated.<br>
&nbsp;&nbsp;All&nbsp;filter&nbsp;catalogs&nbsp;should&nbsp;be&nbsp;produced&nbsp;by&nbsp;dual&nbsp;image<br>
&nbsp;&nbsp;execution.&nbsp;Only&nbsp;when&nbsp;one&nbsp;filter's&nbsp;data&nbsp;is&nbsp;available&nbsp;should&nbsp;<a href="#filterCatalog-run">run</a>()&nbsp;be&nbsp;called.<br>
-&nbsp;input&nbsp;parameters&nbsp;are&nbsp;those&nbsp;in&nbsp;the&nbsp;.inpar&nbsp;file<br>
-&nbsp;default&nbsp;input&nbsp;parameters&nbsp;are&nbsp;read&nbsp;from&nbsp;&nbsp;the&nbsp;SExtractor.inpar&nbsp;file<br>
&nbsp;&nbsp;in&nbsp;the&nbsp;pipeline&nbsp;pars&nbsp;directory&nbsp;($PIPELINE/pars).<br>
-&nbsp;setinpar&nbsp;method&nbsp;is&nbsp;available.&nbsp;&nbsp;The&nbsp;pipeline&nbsp;will&nbsp;call&nbsp;this<br>
&nbsp;&nbsp;method&nbsp;to&nbsp;adjust&nbsp;output&nbsp;parameters&nbsp;for&nbsp;a&nbsp;particular&nbsp;observation's<br>
&nbsp;&nbsp;data&nbsp;and&nbsp;environment.<br>
-&nbsp;output&nbsp;parameters&nbsp;are&nbsp;read&nbsp;from&nbsp;the&nbsp;SExtractor.param&nbsp;file<br>
&nbsp;&nbsp;in&nbsp;the&nbsp;pipeline&nbsp;pars&nbsp;directory&nbsp;($PIPELINE/pars).<br>
-&nbsp;the&nbsp;setoutpar&nbsp;method&nbsp;is&nbsp;NOT&nbsp;available.&nbsp;output&nbsp;parameters&nbsp;should&nbsp;be<br>
&nbsp;&nbsp;adjusted&nbsp;in&nbsp;the&nbsp;default&nbsp;.param&nbsp;this&nbsp;module&nbsp;reads.<br>
-&nbsp;cross-correlation&nbsp;using&nbsp;ASSOC*&nbsp;input&nbsp;parameters&nbsp;is&nbsp;not&nbsp;supported&nbsp;yet<br>
-&nbsp;writeXml&nbsp;method&nbsp;now&nbsp;writes&nbsp;a&nbsp;.xml&nbsp;file&nbsp;from&nbsp;the&nbsp;.cat&nbsp;file<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="filterCatalog-__init__"><strong>__init__</strong></a>(self, obs, sparseField<font color="#909090">=None</font>, excludeList<font color="#909090">=['X_IMAGE', 'Y_IMAGE']</font>)</dt><dd><tt>adjusted&nbsp;constructor&nbsp;to&nbsp;allow&nbsp;a&nbsp;passed&nbsp;excludeList&nbsp;for&nbsp;the&nbsp;<br>
exclusion&nbsp;of&nbsp;a&nbsp;passed&nbsp;list&nbsp;of&nbsp;fields&nbsp;from&nbsp;the&nbsp;xml&nbsp;markup.</tt></dd></dl>

<dl><dt><a name="filterCatalog-run2"><strong>run2</strong></a>(self)</dt><dd><tt>Run&nbsp;SExtractor&nbsp;on&nbsp;the&nbsp;sciImageList&nbsp;in&nbsp;dual&nbsp;image&nbsp;mode&nbsp;(i.e.&nbsp;detection&nbsp;image&nbsp;vs&nbsp;filter&nbsp;image)</tt></dd></dl>

<hr>
Methods inherited from <a href="catalog.html#Catalog">catalog.Catalog</a>:<br>
<dl><dt><a name="filterCatalog-getinpar"><strong>getinpar</strong></a>(self, param)</dt><dd><tt>Returns&nbsp;value&nbsp;of&nbsp;input&nbsp;parameter&nbsp;given&nbsp;a&nbsp;parameter&nbsp;name</tt></dd></dl>

<dl><dt><a name="filterCatalog-getoutpar"><strong>getoutpar</strong></a>(self, param)</dt><dd><tt>Returns&nbsp;value&nbsp;of&nbsp;input&nbsp;parameter&nbsp;given&nbsp;a&nbsp;parameter&nbsp;name</tt></dd></dl>

<dl><dt><a name="filterCatalog-mkMsg"><strong>mkMsg</strong></a>(self)</dt><dd><tt>create&nbsp;and&nbsp;write&nbsp;module&nbsp;level&nbsp;message&nbsp;for&nbsp;this&nbsp;class.<br>
Most&nbsp;of&nbsp;this&nbsp;is&nbsp;just&nbsp;compiling&nbsp;the&nbsp;info.&nbsp;meta&nbsp;in&nbsp;a&nbsp;dictionary<br>
of&nbsp;lists&nbsp;where&nbsp;each&nbsp;list&nbsp;is&nbsp;a&nbsp;list&nbsp;of&nbsp;tuples&nbsp;describing&nbsp;the<br>
tag&nbsp;lines&nbsp;for&nbsp;the&nbsp;particular&nbsp;section&nbsp;of&nbsp;the&nbsp;message.&nbsp;&nbsp;This&nbsp;tuple&nbsp;<br>
format&nbsp;conforms&nbsp;to&nbsp;that&nbsp;used&nbsp;by&nbsp;the&nbsp;xmlMessage&nbsp;class&nbsp;which&nbsp;is<br>
modeled&nbsp;on&nbsp;basic&nbsp;python&nbsp;argument&nbsp;passing,&nbsp;i.e.&nbsp;(key,*value,**attr).</tt></dd></dl>

<dl><dt><a name="filterCatalog-run"><strong>run</strong></a>(self)</dt><dd><tt>Runs&nbsp;SExtractor&nbsp;on&nbsp;the&nbsp;list&nbsp;of&nbsp;fits&nbsp;files&nbsp;in&nbsp;sciImageList&nbsp;in&nbsp;single&nbsp;image<br>
mode.</tt></dd></dl>

<dl><dt><a name="filterCatalog-setinpar"><strong>setinpar</strong></a>(self, param, value)</dt><dd><tt>Sets&nbsp;value&nbsp;of&nbsp;input&nbsp;parameter&nbsp;given&nbsp;a&nbsp;parameter&nbsp;name&nbsp;and&nbsp;value</tt></dd></dl>

<dl><dt><a name="filterCatalog-setpars"><strong>setpars</strong></a>(self, fitsfile)</dt><dd><tt>generate&nbsp;the&nbsp;.inpar&nbsp;and&nbsp;.param&nbsp;files&nbsp;for&nbsp;a&nbsp;passed&nbsp;fitsfile.</tt></dd></dl>

<dl><dt><a name="filterCatalog-writeXml"><strong>writeXml</strong></a>(self)</dt><dd><tt>writeXml&nbsp;calls&nbsp;the&nbsp;xmlUtil&nbsp;catalog&nbsp;functions&nbsp;on&nbsp;a&nbsp;list&nbsp;of&nbsp;source&nbsp;catalogs<br>
produced&nbsp;by&nbsp;SExtractor&nbsp;of&nbsp;the&nbsp;observation&nbsp;object&nbsp;and&nbsp;also&nbsp;calls&nbsp;the<br>
markupImage&nbsp;function&nbsp;(xmlUtil)&nbsp;on&nbsp;the&nbsp;segmentation&nbsp;images&nbsp;produced<br>
by&nbsp;SExtractor.&nbsp;New&nbsp;requirements&nbsp;for&nbsp;the&nbsp;markup&nbsp;now&nbsp;mean&nbsp;the&nbsp;pipeline<br>
has&nbsp;to&nbsp;include&nbsp;the&nbsp;filter&nbsp;name&nbsp;in&nbsp;the&nbsp;catalog&nbsp;tag&nbsp;of&nbsp;the&nbsp;xml&nbsp;file.<br>
filterName&nbsp;func&nbsp;returns&nbsp;the&nbsp;_useful_&nbsp;filter&nbsp;name,&nbsp;i.e.&nbsp;the&nbsp;one&nbsp;that&nbsp;is<br>
not&nbsp;clear.&nbsp;&nbsp;This&nbsp;is&nbsp;now&nbsp;part&nbsp;of&nbsp;the&nbsp;argument&nbsp;list&nbsp;that&nbsp;goes&nbsp;to&nbsp;the&nbsp;<br>
xmlStartCat&nbsp;function.&nbsp;A&nbsp;new&nbsp;requirement&nbsp;has&nbsp;been&nbsp;placed&nbsp;upon<br>
this&nbsp;writeXml&nbsp;method&nbsp;to&nbsp;allow&nbsp;certain&nbsp;fields&nbsp;of&nbsp;a&nbsp;catalog&nbsp;file<br>
to&nbsp;be&nbsp;excluded&nbsp;from&nbsp;the&nbsp;xml&nbsp;markup.&nbsp;&nbsp;This&nbsp;is&nbsp;done&nbsp;to&nbsp;avoid&nbsp;redundant<br>
fields&nbsp;for&nbsp;the&nbsp;same&nbsp;objects&nbsp;being&nbsp;sent&nbsp;to&nbsp;the&nbsp;SDA.&nbsp;&nbsp;See&nbsp;Bugzilla<br>
bug&nbsp;#1436.</tt></dd></dl>

</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
    
<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt><a name="-main"><strong>main</strong></a>(obs, wtfile)</dt><dd><tt>Just&nbsp;cobbles&nbsp;all&nbsp;the&nbsp;method&nbsp;calls&nbsp;and&nbsp;runs&nbsp;it&nbsp;all&nbsp;with&nbsp;one&nbsp;call.</tt></dd></dl>
</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
    
<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><strong>__author__</strong> = 'Ken Anderson, anderson@pha.jhu.edu'<br>
<strong>__version__</strong> = '1.11'<br>
<strong>__version_date__</strong> = '2005/02/01 21:36:56'</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#7799ee">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr>
    
<tr><td bgcolor="#7799ee"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%">Ken&nbsp;Anderson,&nbsp;anderson@pha.jhu.edu</td></tr></table>
</body></html>